package com.event.cacheclear.service;

import com.event.common.face.IClearNameSpace;
import java.io.Serializable;
import java.util.List;
import java.util.function.Supplier;

/**
 * 批量删除缓存服务
 */
public interface IBatchClearCacheService {
    /**
     * 批量删除缓存
     * @param namespaceAlias
     */
    void batchClearInsertCache(String namespaceAlias, Supplier<List<Serializable>> idList);
    /**
     * 批量删除缓存
     * @param ids
     */
    void batchClearUpdateCache(String namespaceAlias, List<Serializable> ids,Runnable runnable);

    /**
     * 清理缓存(就是拿到转换后在业务id)
     * @param namespaceAlias
     * @param busIds
     */
    void clearCache(String namespaceAlias, List<Serializable> busIds);
    /*
     * 批量查询业务主键
     * @return null
     * @author Bing
     * @date 2024/10/30 10:45
     **/
    List<Serializable> getBusIdsByBatch(IClearNameSpace<Object> clearNameSpace, List<Serializable> ids);

    /**
     * 检查缓存服务
     * @param alias
     * @return
     */
    IClearNameSpace<Object> checkClearNameSpace(String alias);

    /**
     * 清理缓存（为转换的业务id）
     * @param clearNameSpace
     * @param alias
     * @param idValues
     * @return
     */
    List<Serializable> clearCacheByIds(IClearNameSpace<Object> clearNameSpace,String alias,List<Serializable> idValues);
}
